#ifndef CPPN_HH
#define CPPN_HH

#include "evolution/genome.hh"
#include "ann/network.hh"

#include <memory>
#include <iosfwd>

namespace cppn {

    class CPPN {
        struct Builder;
        ann::Network* net;

    public:
        CPPN (std::shared_ptr<evolution::Genome> genome);
        ~CPPN ();

        void set_input (float x1, float y1, float x2, float y2);
        void reset ();
        
        bool get_leo ();
        float get_weight ();

        friend std::ostream& operator<< (std::ostream& out, CPPN const& cppn);
    };

}

#endif
